﻿using System;
using System.Collections.Generic;
using System.Linq;
using Sungero.Core;
using Sungero.CoreEntities;
using Sungero.RecordManagement.DeadlineRejectionAssignment;

namespace Sungero.RecordManagement
{
  partial class DeadlineRejectionAssignmentServerHandlers
  {
    public override void BeforeComplete(Sungero.Workflow.Server.BeforeCompleteEventArgs e) 
    {
      if (_obj.Result.Value == Result.ForRework)
      {
        // Проверить заполненность комментария к повторному запросу.
        if (_obj.Texts.Last().IsAutoGenerated ?? false)
          e.AddError(DeadlineRejectionAssignments.Resources.RequestCommentNotFilled);
        
        // Новый срок поручения должен быть позже старого.
        if (_obj.NewDeadline <= _obj.CurrentDeadline)
          e.AddError(_obj.Info.Properties.NewDeadline, DeadlineExtensionTasks.Resources.DesiredDeadlineIsNotCorrect, new[] { _obj.Info.Properties.NewDeadline });
        
        // Добавить автотекст.
        e.Result = DeadlineRejectionAssignments.Resources.RequestedRepeatedly;
      }
      else
        // Добавить автотекст.
        e.Result = DeadlineRejectionAssignments.Resources.RequestedAccepted;
    }
  }
}